import java.util.Arrays;
import java.util.Scanner;

public class zhuanQuanQuan {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();//输入小孩个数
        int[] nn = new int[n];
        for(int i=0;i<nn.length;i++){ //设置每个小孩的编号
            nn[i]=i+1;
        }
        //处理3倍数的删除
        int count = 0;//定义报数
        while(true){
            if(nn.length==1){ //数组长度为1表示只剩余一个小孩结束循环
                break;
            }
            count++; //报数
            if(count % 3 == 0){ //3的倍数删除当前报数的小孩
                nn = Arrays.copyOfRange(nn,1,nn.length); //删除第一个小孩
            }else{
                int tmp = nn[0]; // 取出数组第一个小孩
                nn = Arrays.copyOfRange(nn,1,nn.length+1); //删除第一个 后面扩一个
                nn[nn.length-1]=tmp;//把第一个取出不该删除的小孩放到数组的最后实现循环队列效果
            }

        }
        System.out.println(nn[0]); //打印最后剩余的小孩
    }
}
